package com.shujia.wyh.java_moni_hadoop;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Demo {
    public static void main(String[] args) throws Exception {
        /**
         * 使用IO流读取数据的文件，使用Map集合存储班级和班级的人数（使用字符缓冲流一行一行的读取数据，每次读取到一行的时候，
         * 判断集合中是否有该班级作为key存在，如果存在，value值+1，如果不存在，就将该班级作为key，1作为value值进行存储）
         */
        //创建字符串缓冲输入流对象
        BufferedReader br = new BufferedReader(new FileReader("bigdata23-hadoop/data/students.txt"));
        //创建HashMap集合存储数据
        HashMap<String, Integer> map = new HashMap<>();

        String line = null;
        while ((line = br.readLine()) != null) {
            //按照英文逗号进行分割
            String clazz = line.split(",")[4];
            //往集合中进行添加
            if (!map.containsKey(clazz)) {
                map.put(clazz, 1);
            } else {
                map.put(clazz, map.get(clazz) + 1);
            }
        }

        //将集合数据写入到文件中
        //创建字符串缓冲输出流对象
        BufferedWriter bw = new BufferedWriter(new FileWriter("bigdata23-hadoop/data/demo1/part-r-00000"));
        //遍历集合
        Set<Map.Entry<String, Integer>> entries = map.entrySet();
        for (Map.Entry<String, Integer> entry : entries) {
            String clazz = entry.getKey();
            Integer number = entry.getValue();
            bw.write(clazz + ":" + number);
            bw.newLine();
            bw.flush();
        }



        //释放资源
        bw.close();
        br.close();
    }
}
